Перейти к основному содержимому

Пользователи и регистрация

Страница авторизации

User/Security/login.html.twig

В данном шаблоне обязательно должны присутствовать два input поля с именами: _username и _password.

Для предотвращения CSRF атак необходимо в форме авторизации передавать hidden поле с именем _csrf_token и значением {{ csrf_token }}. Например:

<input type="hidden" name="_csrf_token" value="{{ csrf_token }}"/>

Также, в шаблоне может присутствовать контрол с именем _remember_me. В случае, если этот контрол заполнен (например, отмечен чекбокс), то пользователю в случае успешной авторизации будет присвоена специально сформированная cookie, которая позволит автоматически авторизовать пользователя при дальнейших посещениях сайта.


<div>
<input type="checkbox" id="_remember_me" name="_remember_me" value="on" checked>
<label for="_remember_me">Запомнить меня</label>
</div>

В данный шаблон передаются следующие переменные:

НазваниеОписание
last_usernameПоследнее используемое имя пользователя. Этой переменной можно предзаполнить {{ _username }}.
errorОбъект, описывающий ошибку авторизации. Пример использования: {{ error.messageKey|trans(error.messageData, 'OutofboxUserBundle') }}.
csrf_tokenТокен для противодействию CSRF-атакам. Данное значение должно быть в hidden поле формы с именем _csrf_token.
target_pathURI, куда отправить пользователя после успешной авторизации. Следует передавать в hidden поле формы с именем _target_path.

Профиль пользователя

User/profile.html.twig

Получить доступ к текущему авторизованному пользователю можно через переменную {{ app.user }}.

Более подробное про сущность Пользователь читайте в соответствующем разделе.

Никаких дополнительных переменных в этот шаблон не передается.

Страница регистрации пользователя

User/Registration/register.html.twig

В данный шаблон передается уже сформированный объект формы. Ниже представлен список доступных полей формы.

{{ form_errors(form) }}

{{ form_start(form) }}
{{ form_row(form.username) }}
{{ form_row(form.email) }}
{{ form_row(form.password) }}
{{ form_widget(form._token) }}
<div>
<button type="submit">Зарегистрироваться</button>
</div>
{{ form_end(form, { 'render_rest': false }) }}

Пример развернутых полей формы регистрации:

{{ form_errors(form) }}

{{ form_start(form, { 'attr': { 'class': 'form-submit' } }) }}
<div>
{{ form_label(form.username, 'Ваш логин', {'label_attr': {'class': 'some-class'}}) }}
{{ form_widget(form.username, {'attr': {'class': 'some-class'}}) }}
{{ form_errors(form.username) }}
</div>

<div>
{{ form_label(form.email, 'E-mail', {'label_attr': {'class': 'some-class'}}) }}
{{ form_widget(form.email, {'attr': {'class': 'some-class'}}) }}
{{ form_errors(form.email) }}
</div>

<div>
{{ form_label(form.password.first, 'Пароль', {'label_attr': {'class': 'some-class'}}) }}
{{ form_widget(form.password.first, {'attr': {'class': 'some-class'}}) }}
{{ form_errors(form.password.first) }}
</div>

<div>
{{ form_label(form.password.second, 'Пароль еще раз', {'label_attr': {'class': 'some-class'}}) }}
{{ form_widget(form.password.second, {'attr': {'class': 'some-class'}}) }}
{{ form_errors(form.password.second) }}
</div>

{{ form_widget(form._token) }}

<div>
<button type="submit">Зарегистрироваться</button>
</div>
{{ form_end(form, { 'render_rest': false }) }}